1. Statement of the Technical Field
The present invention relates to the field of image distribution and more particularly to the distribution of application imagery during an application sharing session between a multiplicity of application viewers.
2. Description of the Related Art
The rapid development of the Internet has led to advanced modes of communication and collaboration. Using the Internet as a backbone, individuals worldwide can converge in cyberspace to share ideas, documents and images in a manner not previously possible through conventional telephony and video conferencing. To facilitate collaboration over the Internet, a substantial collection of technologies and protocols have been assembled to effectively deliver audio, video and data over the single data communications medium of the Internet. These technologies include instant messaging, Internet telephony and application sharing.
In conventional application sharing, an application host can distribute imagery of an application operating in the host to one or more application viewers distributed about the computer communications network. The imagery can include not only the screens rendered in association with the operation of the shared application, but also the visual presentation of mouse pointer movements and the like. Generally, speaking, however, the imagery can include only discrete “snap-shots” of the actual display of the operating application in the host system. In this way, the application viewers can be given the appearance of sharing an application, though each viewer merely views a shadow rendering of only a portion of the operation of the shared application.
As it will be apparent to the skilled artisan, the transmission of imagery across the computer communications network to a multiplicity of viewers can produce substantial problems which relate not only to the timing of delivery of the distributed image frames to the viewing population, but also in delivering the imagery to multiple disparate viewing clients. In this regard, while some viewing clients may enjoy substantial communications bandwidth and access to vast processing resources, other viewing clients may suffer from limited bandwidth and inferior processing resources. Accordingly, accommodating “slower” viewing clients without affecting the viewing experience of “faster” viewing clients can be challenging if not impossible.
The problem of accommodating multiple, disparate viewing clients can be exacerbated when considering that not all viewing clients begin a viewing session simultaneously. More particularly, in the prototypical circumstance, the delivery of viewing frames of a shared application can be synchronized so that all viewing clients view the application in the same state at the same time. Synchronization can be particularly important when supporting a collaborative effort such as an e-meeting where all participants presume that the shared application appears identically for all e-meeting participants.
Just as in the case of a human-to-human meeting, however, in the world of the e-community, some meeting participants fail to “arrive” at an e-meeting in a timely manner. Where multiple participants engage in the e-meeting, however, it may not be feasible to await the arrival of a “late joiner”. In this case, the e-meeting must commence in the absence of the late joiner. When the late joiner does finally “arrive” for the e-meeting, the distribution of further imagery relating to a shared application must halt pending the synchronization of the view of the application with the display of the late joiner. Accordingly, accommodating the late joiner can produce an unwanted delay in the distribution of additional updated frames to the existing meeting participants.